From 8e41fa2778900422d1d094bbc5bf659ac2409bf3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Fri, 24 Jan 2020 06:18:03 +0100 Subject: [PATCH] widget: Use gsk_transform_transform_point() in gtk_widget_pick() This also covers the 2D_AFFINE case. --- gtk/gtkwidget.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index f3224d2cb6..283c5163e3 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -10502,12 +10502,15 @@ gtk_widget_do_pick (GtkWidget *widget, { transform = NULL; } - if (gsk_transform_get_category (transform) >= GSK_TRANSFORM_CATEGORY_2D_TRANSLATE) + + if (gsk_transform_get_category (transform) >= GSK_TRANSFORM_CATEGORY_2D_AFFINE) { - float dx, dy; + graphene_point_t transformed_p; - gsk_transform_to_translate (transform, &dx, &dy); - graphene_point3d_init (&res, x + dx, y + dy, 0.); + gsk_transform_transform_point (transform, + &(graphene_point_t) { x, y }, + &transformed_p); + graphene_point3d_init (&res, transformed_p.x, transformed_p.y, 0.); } else { -- 2.30.2